約 4,455,948 件
https://w.atwiki.jp/egg_chicken/pages/15.html
Ruby on Rails について Ruby on Rails (以下Rails) はRuby言語を使ったWebアプリケーション開発のためのフレームワーク。 モデルの作成 rails の プロジェクトディレクトリで rails g model とするとクラス、マイグレーション、テストのファイルが作成される。 rails g model MODEL_NAME [ FIELD TYPE ...] 例 rails g model body text title string user_id integer コントローラの作成 rails の プロジェクトディレクトリで rails g controller とすると... rails g controller CONTROLLER_NAME rails g controller license/math CONTROLLER_NAMEController という名前のクラスになるので注意。
https://w.atwiki.jp/wiki6_takt/pages/40.html
Railsキャッシング インターネット上の大規模サイトの多くはインタープリター型言語を使っています。そうしたサイトは、Ruby と同じ方式、つまりクラスター化され、何も共有しないアーキテクチャーを採用しています。そしてキャッシュも行っています。大部分のサイトでは、可能な限り最大のパフォーマンスを得るために、効果的なキャッシング方法を必要としています。そして Rails 開発者も、そうした方式に従い始めています。 単純な Rails アプリケーションの作成に役立つ記事は、何十というほどあります。このシリーズでは、単純なブログを作成するという基礎を越え、すべての Rails サイトが解決すべき問題に入り込みます。ここでは Rails の最適化方法や、サイトをより安定にするための方法について学びます。また、Rails の基本的な制約を、プラグインを追加することで回避する方法も学びます。このシリーズの各記事を読み終わるごとに、現実の世界で Rails サイトを動作させるための方法について、さらにもう少し知ることができるはずです。 いくつかのシナリオ まず、ChangingThePresent.org の何ページかを紹介させてください。このサイトの中で、キャッシュが必要となりそうな、いくつかの場所を示すことにします。次に、私達がそれぞれの場所に対して何を選択したか、そして、そうしたページを実装するために使用したコード、つまり方式に注目します。特に、私達が下記のすべてに対して、どう対応しているかを説明します。 静的なページ全体 ほとんど変化しない動的なページ全体 動的なページの一部 (動的なページ・フラグメント) アプリケーション・データ 静的なページを考えてみましょう。ほとんどすべてのサイトには静的なページがあります。例えば図 1 は、私達の使用許諾条件を示しています。このページに行くためには、register をクリックし、次に user agreement をクリックします。ChangingThePresent の場合、私達はこのページからすべての動的コンテンツを削除したので、このページを Apache にキャッシュさせることができました。私達の Apache の構成ルールから、このコンテンツが Rails サーバーでサービスされることはありません。私はこの Rails のキャッシングをまったく考えていません。 図 1. 利用規約 次に、完全に動的なページを考えてみましょう。理論的には、ChangingThePresent は、動的に作成されても稀にしか変化しないページを持つことができます。ほとんどすべてのページはユーザーがログインしているかどうかを表示するため、私達はこのタイプのキャッシングには関心がありません。 次に、ページ・フラグメントのキャッシングを考えます。私達のホームページ (図 2) は、以前は完全に静的でした。現在では、いくつかの要素が動的です。このページは毎日、一連の寄付項目を表示します (寄付項目は、ランダムに選択されるものと私達の管理者が選択するものの両方があります)。「A Few of our Special Gifts for Earth Day」というタイトルのセクションの寄付項目に注目してください。また、右端にある「login」というリンクにも注目してください。このリンクは、ユーザーがログインしているかどうかに依存します。ページ全体をキャッシュすることはできません。このページは 1 日に 1 度だけ変更されます。 図 2. ホームページ 最後に、このアプリケーションを考えてみます。15 年前にすべてのネット・サーフィンを終えたのでもない限り、興味深いサイトの大部分は動的です。最近のアプリケーションにはレイヤーがあり、通常はレイヤー間にキャッシュを追加することで、アプリケーションを効率的にすることができます。ChangingThePresent は、少しばかりデータベース・レイヤーでキャッシングを行っています。次に、こうしたキャッシングのタイプをそれぞれ掘り下げ、私達が ChangingThePresent でどんなことをしているかを説明しましょう。 静的コンテンツのキャッシング 静的なデータのキャッシング方法については、画像を除けば、あまり言うことがありません。私達のサイトは寄付のためのポータルです。これはつまり、ユーザーの感情面に訴える必要があるということです。これは画像が、そしてさらにはビデオが必要なことを意味しています。しかし私達の Web サーバーである Mongrel は、静的データをあまり適切にサービスすることができません。そのため私達は、Apache を使って画像コンテンツをサービスしています。 Mongrel は、Zed Shaw が 2500 行の Ruby と C で作成した Web サーバーです。この、ごく小さなフットプリントを持つ小さなサーバーは、Rails や Nitro、Iowa などの Ruby Web アプリケーション用にカスタム調整されます。Mongrel は UNIX® と Linux™ で動作しますが、Win32 でも動作します。Mongrel は多くの場合、別の Web サーバー (Apache や Litespeed など) の背後で実行し、プロキシーとして動作します。しかし、必ずそうである必要はありません。Mongrel 自体が HTTP サーバーなので、皆さんの好みの HTTP ツールと合わせて Mongrel を使うことができます。 私達は最も頻繁に使われる画像をキャッシュし、私達の顧客がそうした画像を手軽に見られるように、画像アクセラレーター、Panther Express に移行しつつあります。この方法を使うために、images.changingThePresent.org というサブドメインを持つことにします。Panther Express は、そのローカル・キャッシュで任意の画像を直接サービスし、そしてリクエストを私達に対して送信します。Panther サービスは私達がいつ画像を変更するのかわからないため、私達は HTTP ヘッダーを使って画像を失効させています。下記を見てください。 キャッシュを失効させる HTTP ヘッダー HTTP/1.1 200 OK Cache-Control max-age=86400, must-revalidate Expires Tues, 17 Apr 2007 11 43 51 GMT Last-Modified Mon, 16 Apr 2007 11 43 51 GMT これらが HTML ヘッダーではないことに注意してください。こうした HTTP ヘッダーは Web ページのコンテンツとは独立に作成されます。Web サーバーは、こうした HTTP ヘッダーを作成してくれます。Web サーバーの構成は、Rails に関する記事シリーズとしては関心の対象ではないため、今度は Rails フレームワークでコントロールされるキャッシュの内容に移ることにします (Web サーバーの構成について詳しくは、「参考文献」のリンクを参照してください)。 ページ・キャッシング 稀にしか変化しない動的なページがある場合には、ページ・レベルのキャッシングをする必要があります。ブログや公開の掲示板は、そうした種類のアプリケーションの例です。ページ・キャッシングを行うと、Rails は動的な HTML ページを作成でき、それを公開のディレクトリーに保存できるため、アプリケーション・サーバーはそれを他の静的ページと同じようにサービスすることができます。 Rails は、ページがキャッシュされた場合、画像を含めないため、ページ・キャッシングは Rails では最も高速な種類のキャッシング動作です。最も基本的なレベルのページ・キャッシングであれば、実は Rails では非常に容易に行うことができます。ページ・キャッシングとフラグメント・キャッシングはどちらも、コントローラー・レベルで行われます。Rails に対して下記を指示する必要があります。 どのページをキャッシュしたいか ページのコンテンツが変化した場合、キャッシュにあるページをどのように失効させるか ページ・キャッシングを有効にするには、コントローラー・クラス内の caches_page ディレクティブを使います。例えば privacy_policy ページと user_agreement ページを about_us_controller でキャッシュするためには、下記のコードを入力します。 リスト 2. ページ・キャッシングを有効にする class AboutController ApplicationController caches_page privacy_policy, user_agreement end ページを失効させるためには expire_page ディレクティブを使います。Rails が new_pages アクションを呼び出した時に上記のページを失効させる場合には、私は下記のコードを使います。 リスト 3. ページを失効させる class AboutController ApplicationController caches_page privacy_policy, user_agreement def new_pages expire_page action = privacy_policy expire_page action = user_agreement end end ここで、いくつかの小さな問題、例えば URL に注目する必要があります。URL を URL パラメーターに依存させることはできません。例えば、gifts/water?page=1 の代わりに gifts/water/1 を使う必要があります。routes.rb では、そうした URL を容易に使うことができます。例えば私達のページは、どのタブが選択されているかを示すタブ・パラメーターを持つことがよくあります。このタブを URL の一部にするために、私達は下記のルーティング・ルールを使っています。 リスト 4. タブのためのルーティング・ルール map.connect member/ id/ tab , controller = profiles , action = show 同じことを、ページ・パラメーターを持つリストや、URL パラメーターに依存する他のページにも行う必要があります。また、セキュリティーも考慮する必要があります。 ページがキャッシュの中にある場合、Rails フレームワークは無関係なため、サーバーはセキュリティーの面倒を見てくれません。Web サーバーはキャッシュの中の任意のページを構わず描画し、ユーザーがそうしたページを見る権限を持っているかどうかを気にしません。そのため、そのページを見られる人が誰かを気にする場合には、ページ・キャッシングを使うべきではありません。 単純で静的なページを単にキャッシュするだけであれば、必要なことは以上です。ある程度コンテンツが単純である限り、難しいことはありません。 しかし、もっと複雑なコンテンツをキャッシュしようとすると、トレードオフを迫られます。大幅に動的なページをキャッシュする場合には、失効ロジックが複雑になります。複雑な失効ポリシーを処理するためには、カスタムのスイーパー (sweeper) を作成して構成する必要があります。こうしたクラスは、ある種のコントローラー・アクションが起動されると、選択された要素をキャッシュから削除します。 大部分のカスタム・スイーパーは、何らかのモデル・オブジェクトを観察し、そして変化に基づいて、1 つ以上のキャッシュ・ページを失効させるためのロジックを起動します。リスト 5 は典型的なキャッシュ・スイーパーを示しています。スイーパーの中では、アクティブ・レコード・イベント (例えば after_save など) を定義することができます。そのイベントが起動すると、スイーパーが起動し、そしてキャッシュの中にある、選択されたページを無効にします。この例は expire_page メソッドに基づく無効化を示しています。多くの本格的なアプリケーションでは、こうした方法ではなく、Ruby の素晴らしいファイル・システム・ユーティリティーを直接使って、キャッシュされたページを明示的に削除しています。 リスト 5. 典型的なオブザーバー class CauseController ApplicationController cache_sweeper cause_sweeper ... class CauseSweeper ActionController Caching Sweeper observe Cause def after_save(record) expire_page( controller = causes , action = show , id = record.id) cause.nonprofits.each do |nonprofit| expire_page( controller = nonprofits , action = show , id = nonprofit.id) end end end おそらく皆さんは、ページ・キャッシングの欠点、つまり複雑さに気が付き始めたのではないでしょうか。ページ・レベルのキャッシングを適切に行うことはできますが、複雑になるという特有の問題があるため、アプリケーションはテストしにくくなり、またシステム中でバグの可能性が高まります。また、もしページがユーザーごとに異なる場合には、あるいは認証されたページをキャッシュしたい場合には、ページ・キャッシング以上のものを検討する必要があります。ChangingThePresent の場合は両方の状況に対応する必要があります。なぜなら、ユーザーがログインしているかによって基本的なレイアウト上のリンクを変更しているからです。私達の大部分のページでは、ページ・レベルのキャッシングなど、考えることすらできません。ページ・レベルのキャッシングに関して学ぶためには、いくつかの素晴らしい記事へのリンクを「参考文献」にあげましたので、それらを参照してください。次に、ページ全体のキャッシングの別形式である、アクション・キャッシングについて説明します アクション・キャッシング ここまでのところで、ページ・キャッシングの基本的な強みと、基本的な弱みの両方を学びました。大部分のページ取得では、Rails が画像を含めることはありません。強みはスピードであり、弱みは柔軟性です。アプリケーションの状態 (例えば認証など) に基づいてページ全体のキャッシングを行う必要がある場合には、ページ・キャッシングではなくアクション・キャッシングをすることができます。 アクション・キャッシングは、ページ・キャッシングと同じように動作しますが、フローは少し異なります。Rails はアクションを描画する前に、実際にコントローラーを呼び出します。もしそのアクションによって描画されたページが既にキャッシュの中にある場合には、 Rails はそのページを再度描画するのではなく、キャッシュの中にある、そのページを描画します。今度は画像の中に Rails があるため、ページ・キャッシングよりもやや遅くなりますが、有利な点もあります。ほとんどすべての Rails 認証スキーマは、コントローラーの before フィルターを使います。アクション・キャッシングでは、コントローラーによる認証と任意のフィルターを利用することができます。 構文的には、アクション・キャッシングはページ・キャッシングとまったく同じように動作しますが、使用するディレクティブは異なります。リスト 6 は caches_action ディレクティブの使い方を示しています。 リスト 6. アクション・キャッシングを有効にする class AboutController ApplicationController caches_action secret_page, secret_list end キャッシュの失効、そしてスイーパーも、同じように動作します。私達はアクション・キャッシングを使っていませんが、その理由の多くはページ・キャッシングを使わない理由と同じです。しかしフラグメント・キャッシングは私達にとって、はるかに重要です。 ページ・フラグメントのキャッシング 部分キャッシングを使うと、ページの一部 (多くの場合はレイアウトのためのコンテンツ) をキャッシュすることができます。またフラグメント・キャッシングを使うと、Web ページ上に直接置かれた rhtml ディレクティブでブロックを囲むことによって、キャッシュすべきフラグメントを特定することができます (リスト 7)。ChangingThePresent.org では、フロント・ページと他の何ページかをフラグメント・キャッシングを使ってキャッシュしています。これらのページは、どれもデータベースを頻繁にアクセスし、また私達のサイトで最も人気のあるページです。 リスト 7. キャッシュ・フラグメントを特定する % cache gifts_index do % h3 Here, you can make the world a better place with a single gift. Donation gifts are also a wonderful way to honor friends and family. Just imagine what we can achieve together. /h3 h2 class="lightBlue" %= @event_title % /h2 div id="homefeatureitems" % for gift in @event_gifts % %= render partial = gifts/listable , locals = { gift = gift } % % end % /div ... % end % リスト 7 では、キャッシュする対象のフラグメントを cache ヘルパーが特定します。最初のパラメーターは、キャッシュ・フラグメントを特定する固有の名前です。2 番目のパラメーターは、どの RHTML フラグメントをキャッシュするかを正確に特定するコード・ブロック (最初の do と最後の end の間のコード) を含んでいます。 私達のサイトにはホームページが 1 つしかないため、ページに名前を付けるのは簡単です。他の場所では、あるページの URL を決定するメソッドを使って、キャッシュ・フラグメントを固有識別しています。例えば世界平和あるいは貧困の緩和など、大義のためのコードをキャッシュする場合、私達はリスト 8 のコードを使います。このコードは、その大義に対するパーマネント URL (パーマリンクとも呼ばれます) を発見します。 リスト 8. URL によってキャッシュ・フラグメントを特定する % cache @cause.permalink(params[ id]) do % 通常、個々のページをキャッシュする場合、それらのページをスイーパーで失効させる必要があります。しかし場合によると、単純に時間に基づいてオブジェクトを失効させる方法を使った方が容易で簡潔なことがあります。Rails はデフォルトではそうした機構を提供していませんが、timed_fragment_cache というプラグインを使うと、ちょっとしたトリックを行えます。このプラグインを使うと、キャッシュされたコンテンツの中で、あるいはページの動的データを提供するコントローラー・コードの中で、タイムアウトを指定することができます。例えばリスト 9 は、大義のリストを持つページに対する動的データを作成するコードを示しています。when_fragment_expired メソッドは、関連付けられたキャッシュ・フラグメントが失効する時にのみ実行されます。このメソッドは、タイムアウトの長さを指定するパラメーターと、どのコンテンツが失効した時にそのコンテンツを再構築するかを指定するコード・ブロックを使います。rhtml ページの中で、キャッシュ・メソッドと共にタイムアウトを指定する選択もあったのですが、私達にとってはコントローラー・ベースのメソッドの方が好ましい選択でした。 リスト 9. 時間に基づくキャッシュの失効 def index when_fragment_expired causes_list , 15.minutes.from_now do @causes = Cause.find_all_ordered end end 有効期限付きの方法を使うと、(少しばかり古いデータで我慢できるのなら) キャッシング方法を大幅に単純化することができます。キャッシュされる要素それぞれに対して、キャッシュしたいコンテンツと、動的コンテンツを作成する任意のコントローラー・アクション、そしてタイムアウトを指定すればよいだけです。ページ・キャッシングの場合と同じく、もし必要であれば、expire_fragment controller = controller, action = action, id = id.というメソッドを使って明示的にコンテンツを失効させることもできます。このメソッドは、キャッシュされたアクションやページの失効とまったく同じように動作します。次に、バック・エンドの構成方法を説明しましょう。 memcached ここまで、Ruby on Rails のためのページとフラグメントのキャッシング・モデルを説明してきました。API については説明したので、今度はキャッシュされたデータがどこに行くのかを定義しましょう。Rails はデフォルトで、キャッシュされたページをファイル・システムの中に置きます。キャッシュされたページもアクションも、公開のディレクトリーの中に入ります。キャッシュされたフラグメントのストレージ場所は、構成することができます。メモリー・ストアを使うこともでき、あるいは (指定したディレクトリーの) ファイル・システムやデータベース、あるいは memcached と呼ばれるサービスを使うこともできます。ChangingThePresent.org では memcached を使っています。 memcached は、ネットワークを介して到達できる巨大なハッシュ・マップと考えることができます。メモリー・ベースで行うキャッシングは高速であり、そしてネットワーク・ベースのキャッシュはスケーラブルです。プラグイン・サポートを利用することで、Rails は memcached を使ってフラグメントと ActiveRecord モデルをキャッシュすることができます。memcached を使うためには、memcached をインストールし (詳細は「参考文献」を参照)、そしてそれを environment.rb (あるいは production.rb など環境構成ファイルの 1 つ) の中で構成します。 リスト 10. キャッシングの構成 config.action_controller.perform_caching = true memcache_options = { c_threshold = 10_000, compression = false, debug = false, readonly = false, urlencode = false, ttl = 300, namespace = igprod , disabled = false } CACHE = MemCache.new memcache_options リスト 10 は、典型的な構成を示しています。1 行目の config.action_controller.perform_caching = true は、キャッシングをオンにします。次の行は、キャッシングのオプションを準備します。さまざまなオプションを利用することで、さらに多くのデバッグ・データを取得でき、キャッシュを無効にでき、そしてキャッシュの名前空間を定義できることに注意してください。構成オプションの詳細については、「参考文献」セクションにあげた memcached のサイトを参照してください。 モデルのキャッシング 私達が使用しているキャッシング形式の最後は、モデル・ベースのキャッシングです。私達は、CachedModel と呼ばれる、キャッシング・プラグインをカスタマイズしたものを使っています。モデル・キャッシングは限定された形式のデータベース・キャッシュであり、容易に、モデル単位で有効化することができます。 モデルでキャッシング・ソリューションを利用するためには、ActiveRecord を継承する代わりに単純に CachedModel クラスを継承します (リスト 11)。CachedModel は ActiveRecord Baseを継承します。ActiveRecord は、完全なオブジェクト・リレーショナル・マッピング・レイヤーではありません。このフレームワークは、SQL に大きく依存して複雑な機能を実行します。そしてユーザーは、必要に応じて容易に SQL の中まで入り込むことができます。ただし直接 SQL を使用すると、キャッシングに問題が起こりがちです。これはキャッシング・レイヤーが、1 つのデータベース行ではなく完全な結果セットを処理しなければならないためです。結果セットを完全に処理することは、できたとしても問題が多く、それを十分にサポートするアプリケーション・ロジックがない限り、ほとんど不可能です。こうした理由から、CachedModel は厳密に 1 つのモデル・オブジェクトのキャッシングのみに焦点を絞っており、1 つの行を返すクエリーに対してのみ高速化を行います。 リスト 11. CachedModel を使う Class Cause CachedModel 大部分の Rails アプリケーションは、(ユーザー・オブジェクトなど) いくつかの項目を繰り返しアクセスします。こうした状況では、モデル・キャッシングによって動作が高速化されます。ChangingThePresent の場合には、ようやく最近、モデル・ベースのキャッシングの活用を始めたところです。 まとめ Ruby は非常に生産的な言語ですが、インタープリター型であるため、パフォーマンスの観点からは理想的ではありません。大部分の主な Rails アプリケーションは、キャッシングを効果的に利用することで、そうした欠点をいくらか低減しています。ChangingThePresent.org の場合、私達は基本的にフラグメント・キャッシングを使っており、また基本的にタイム・ベースの方法を使うことで、コントローラーによるフラグメントのキャッシングを無効にしています。私達の場合にはログインしたユーザーに基づいて変化するページがあるのですが、この方法はうまく機能しています。 また私達は、memcached に基づく CachedModel クラスを使った場合の影響も検討しています。まだ、そうしたキャッシングがデータベースのパフォーマンスに与える影響を検討し始めたばかりですが、初期の結果を見る限り有望です。
https://w.atwiki.jp/mierka/pages/25.html
railsの基本的な技術を習得します。 参考文献: 「wikipedia-Ruby on Rails」。概要。 「RailsによるアジャイルWebアプリケーション開発」-1章~。 RoRの原著です。 目次:
https://w.atwiki.jp/o230483/pages/10.html
Ruby on Rails の Wiki TodoListTutorial 一分でわかる、リナザウへのRailsのインストール pdaXrom で Ruby on Rails
https://w.atwiki.jp/rubyist-kyushu/pages/13.html
第一回Rails初心者講習会 懇親会の情報 場所 もつ鍋「楽天地」 地図 日時 2007/06/02 Rails講習会後 19 00~ 会費 4000円 申込先 以下のいずれかの方法でお申し込みください。 第一回Rails初心者講習会申し込み時に「懇親会も参加希望」と書き添える 参加者メーリングリストに「参加希望」の旨をお知らせください。 幹事 藤田
https://w.atwiki.jp/ohden/pages/286.html
RubyOnRails install ◆環境 Ubuntu 10.04 Ruby 1.8.7 RubyGems 1.3.7 ◆install ※注:現時点で以下のコマンドを打つとrails3.0.1が入るみたいです。2系を入れたい人は下の方まで読み進めて実行して下さい。 sudo gem install rails --include-dependencies INFO `gem install -y` is now default and will be removedINFO use --ignore-dependencies to install only the gems you listSuccessfully installed activesupport-3.0.1Successfully installed builder-2.1.2Successfully installed i18n-0.4.2Successfully installed activemodel-3.0.1Successfully installed rack-1.2.1Successfully installed rack-test-0.5.6Successfully installed rack-mount-0.6.13Successfully installed tzinfo-0.3.23Successfully installed abstract-1.0.0Successfully installed erubis-2.6.6Successfully installed actionpack-3.0.1Successfully installed arel-1.0.1Successfully installed activerecord-3.0.1Successfully installed activeresource-3.0.1Successfully installed mime-types-1.16Successfully installed polyglot-0.3.1Successfully installed treetop-1.4.8Successfully installed mail-2.2.9Successfully installed actionmailer-3.0.1Successfully installed rake-0.8.7Successfully installed thor-0.14.3Successfully installed railties-3.0.1Successfully installed bundler-1.0.3Successfully installed rails-3.0.124 gems installedInstalling ri documentation for activesupport-3.0.1...Installing ri documentation for builder-2.1.2...ERROR While generating documentation for builder-2.1.2... MESSAGE Unhandled special Special type=17, text=" !-- HI -- "... RDOC args --ri --op /usr/lib/ruby/gems/1.8/doc/builder-2.1.2/ri --title Builder -- Easy XML Building --main README --line-numbers --quiet lib CHANGES Rakefile README doc/releases/builder-1.2.4.rdoc doc/releases/builder-2.0.0.rdoc doc/releases/builder-2.1.1.rdoc --title builder-2.1.2 Documentation(continuing with the rest of the installation)Installing ri documentation for i18n-0.4.2...Installing ri documentation for activemodel-3.0.1...Installing ri documentation for rack-1.2.1...Installing ri documentation for rack-test-0.5.6...Installing ri documentation for rack-mount-0.6.13...Installing ri documentation for tzinfo-0.3.23...Installing ri documentation for abstract-1.0.0...Installing ri documentation for erubis-2.6.6...Installing ri documentation for actionpack-3.0.1...Installing ri documentation for arel-1.0.1...Installing ri documentation for activerecord-3.0.1...Installing ri documentation for activeresource-3.0.1...Installing ri documentation for mime-types-1.16...Installing ri documentation for polyglot-0.3.1...Installing ri documentation for treetop-1.4.8...Installing ri documentation for mail-2.2.9...Installing ri documentation for actionmailer-3.0.1...Installing ri documentation for rake-0.8.7...Installing ri documentation for thor-0.14.3...Installing ri documentation for railties-3.0.1...Installing ri documentation for bundler-1.0.3...Installing ri documentation for rails-3.0.1...File not found lib 順調に入ってると思ったら...止まった。(;´д`) Error自体はドキュメントの入れ損ねっぽぃが... log見てると...なんかRails3の文字が... rails -v Rails 3.0.1 Σ(´Д`;) Rails3が入りやがった...もうgemで取ってくると3が入るのね...orz 今回は2系を入れたいので、仕方がないのでやり直し。(´・ω・`) って sudo gem uninstall rails したら...依存関係含めてuninstallしてくれる訳じゃないんだね...。・゜・(ノД`)・゜・。 今回はまっ更な状態から入れたけぇえぇんじゃが... ある程度環境がある状態から入れとったらどんなことになったか分かりませんね... なんか良い方法あるんかな? gem list sudo gem uninstall abstract actionmailer actionpack …以下listで出た物全部の羅列 とりあえず、gem入れたトコまで戻しました。(ノ∀`) で、今度はVer指定して実行。コレで2系の最新版が入るハズ。 sudo gem install rails --version " 3.0.0" --include-dependencies もしかして、rails入れる時に『gem1.3.6以上じゃねぇとダメ!!』とか言われとったのって...Rails3のせいなんじゃろうか...(;´д`) 最初からVer指定しとったらあっさり入ったんじゃろうか...orz ⇒ その通りでした。apt-getでgem1.3.5が入った状態で上記コマンド実行することでrails2.3.10が無事入りました。 ただ、apt-getで入れたgemだと色々おかしな事が多くて結局手動で入れ直しましたけど... INFO `gem install -y` is now default and will be removedINFO use --ignore-dependencies to install only the gems you listSuccessfully installed rake-0.8.7Successfully installed activesupport-2.3.10Successfully installed activerecord-2.3.10Successfully installed rack-1.1.0Successfully installed actionpack-2.3.10Successfully installed actionmailer-2.3.10Successfully installed activeresource-2.3.10Successfully installed rails-2.3.108 gems installedInstalling ri documentation for rake-0.8.7...Installing ri documentation for activesupport-2.3.10...Installing ri documentation for activerecord-2.3.10...Installing ri documentation for rack-1.1.0...Installing ri documentation for actionpack-2.3.10...Installing ri documentation for actionmailer-2.3.10...Installing ri documentation for activeresource-2.3.10...Installing ri documentation for rails-2.3.10...Installing RDoc documentation for rake-0.8.7...Installing RDoc documentation for activesupport-2.3.10...Installing RDoc documentation for activerecord-2.3.10...Installing RDoc documentation for rack-1.1.0...Installing RDoc documentation for actionpack-2.3.10...Installing RDoc documentation for actionmailer-2.3.10...Installing RDoc documentation for activeresource-2.3.10...Installing RDoc documentation for rails-2.3.10... 今度はドキュメント含めて問題無く入ったみたいですね。(*^ω^) あとは、railsとDB接続のためにsqlite3-rubyってのが要るらしい。 sudo gem install sqlite3-ruby Building native extensions. This could take a while...Successfully installed sqlite3-ruby-1.3.21 gem installedInstalling ri documentation for sqlite3-ruby-1.3.2...No definition for libversionEnclosing class/module mSqlite3 for class Statement not knownInstalling RDoc documentation for sqlite3-ruby-1.3.2...No definition for libversionEnclosing class/module mSqlite3 for class Statement not known もし、sqlite3-rubyのinstallで失敗したら、 sudo apt-get install ruby-dev か sudo apt-get install ruby-full を実行後、再度gem installをやってみると上手く行くかもしれません。 で、これでRailsが動く環境になった。 rails -v Rails 2.3.10 が、何かやっとる内に失敗するパターンがあった... rails -v The program rails is currently not installed. You can install it by typing sudo apt-get install rails って...『/var/lib/gems/1.8/bin』見てみたらちゃんとrails入っとるみたいなんじゃが... カレントdir移動して cd /var/lib/gems/1.8/bin ./rails -v Rails 2.3.10 間違いなく入ってるのに、シンボリックリンクだけ作られて無いって話!?謎だ...シンボリックリンクだけ作りゃえぇんかな?つか、こんな事RubyGems入れよる時にもあったな... Ruby関係じゃとコレ普通なんかな? cd /usr/bin sudo ln -s /var/lib/gems/1.8/bin/rails rails で rails -v Rails 2.3.10 う~ん...表示されたが...えぇんじゃろうか? 更新日: 2017年04月14日 (金) 09時04分17秒 名前 コメント すべてのコメントを見る
https://w.atwiki.jp/maimuzo/pages/53.html
プラグイン名 BenchmarkForRailsプラグイン このプラグインができること 標準のプロファイラより細かくベンチマークを取ってくれる 標準のプロファイラが計測できないところも計測してくれる 2008/8/21現在、Rails2.1系ではエラーが出ている模様 よって実際に使ってないので注意 ちょー簡単な使い方 ruby script/plugin install http //benchmarkforrails.googlecode.com/svn/trunk mv vendor/plugins/trunk vendor/plugins/BenchmarkForRails でインストールするだけ。(?) 詳しくはvender/plugins/BenchmarkForRails/init.rbを見よう。 公式ページ BenchmarkForRails new benchmarking plugin codelevy benchmarkforrails - Google Code 日本語解説ページ ないっス 外国語解説ページ あるかもしれないけど、必要なくね? コメント 名前
https://w.atwiki.jp/banrui/pages/15.html
Ruby ターミナルでの実行 ruby ~~.rb rails rails3の変更点 rails3 rails3:routeまとめ rails3 ユーザー認証 Twitter認証 mail設定/Gmail連携 railsでMySQLを利用する 参考サイト railsで画像をMySQLに保存する 参考サイト (参考)Rails3 でアプリケーションを作る際に、最初にやったことをメモ(jQuery, RSpec, PostgreSQL ) renderとredirect_toの違い ./script/rails console Rails link_toメソッドで指定するパス Devise railsでクッキーとセッションまとめ ユニークインデックス
https://w.atwiki.jp/rubyist-kyushu/pages/15.html
Rails初心者講習会に準備していただくもの ノートPC 各自ノートPC(Windows機を対象とします)をご用意ください。電源アダプタも忘れずに! ノートパソコンにはあらかじめ下記InstantRailsをダウンロードしてお持ちください。 ダウンロードしておくソフトウェア InstantRails 1.7 インストールにはzip fileを解凍するソフトが必要です。 解凍後のサイズは177MB (私のディスク上では270MB占有)となりました。 解凍に時間がかかりますので、あらかじめ解凍しておくようお願い致します。 ZIPファイル解凍用ソフトウェア(任意) なんでも構いません。例:LHaz テキストエディタ(任意) 使い慣れたもので構いませんが、Rubyの構文ハイライトを表示可能なものが望ましいです。例:Terapad テキスト 「RailsによるアジャイルWebアプリケーション開発」 サポートサイト 正誤表 ソースコード
https://w.atwiki.jp/cyrif/pages/19.html
Ruby on Rails3で学ぶ、Web開発のキホン - @IT http //www.atmarkit.co.jp/fcoding/rails/articles/rails3/01/rails301a.html いまどきのRubyとRailsの学び方 | Act as Professional - プロとしての行為 http //bit.ly/hPuHlm